package controllers;


import java.util.List;

import models.Jogador;
import models.dao.DAOJogador;
import play.data.Form;
import play.mvc.*;


public class Ctrl_Administrador extends Controller {
	
	private static Form<Jogador> formJogador = new Form<Jogador>(Jogador.class);
	
	@Security.Authenticated(SecuredAdministrador.class)
	public static Result inserir() {
		return ok(views.html.administrador.inserirAdministrador.render(formJogador));
	}

	public static Result salvarInserir(){
        DAOJogador dao = new DAOJogador();
        Form<Jogador> form = formJogador.bindFromRequest();
        
        if(form.hasErrors()){
        	flash("erro", "Preecha o formulário abaixo corretamente.");
        	return ok(views.html.administrador.inserirAdministrador.render(form));
                
        } else{
            Jogador usu = form.get();
            dao.inserir(usu);
            flash("sucesso", "Seu cadrastro foi concluído com êxito!");
            return redirect(routes.Ctrl_Administrador.listar());
        }
	}
	
	@Security.Authenticated(SecuredAdministrador.class)
	public static Result listar() {
		DAOJogador dao = new DAOJogador();
        List<Jogador> jogador = dao.listar();
        
        return ok(views.html.administrador.listarAdministrador.render(jogador));
	}
	
	@Security.Authenticated(SecuredAdministrador.class)
	public static Result atualizar() {
		Form<Jogador> form = formJogador.bindFromRequest();
        return ok(views.html.administrador.atualizarAdministrador.render(form));
	}
	
	@Security.Authenticated(SecuredAdministrador.class)
	public static Result salvarAtualizacao(){
        DAOJogador dao = new DAOJogador();
        Form<Jogador> form = formJogador.bindFromRequest();
        
        if(form.hasErrors()){
        	flash("erro","Preencha o formulário abaixo corretamente");
            return ok(views.html.administrador.atualizarAdministrador.render(form));
                
        }else{
            Jogador jogador = form.get();
            dao.atualizar(jogador);
            flash("sucesso","A atualização foi um sucesso!");
            return redirect(routes.Ctrl_Administrador.listar());
        }
}
	
	@Security.Authenticated(SecuredAdministrador.class)
	public static Result deletar() {
		Form<Jogador> form = formJogador.bindFromRequest();
		Jogador jogador = form.get();
        DAOJogador dao = new DAOJogador();
        dao.deletar(jogador);
        
        return redirect(routes.Ctrl_Administrador.listar());
	}

}
